home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / appshell / appmain.frm < prev    next >
Text File  |  1995-09-06  |  9KB  |  404 lines

  1. VERSION 2.00
  2. Begin Form AppMain 
  3.    Caption         =   "App Shell - [untitled]"
  4.    ClientHeight    =   5370
  5.    ClientLeft      =   885
  6.    ClientTop       =   1485
  7.    ClientWidth     =   8205
  8.    FontBold        =   0   'False
  9.    FontItalic      =   0   'False
  10.    FontName        =   "MS Sans Serif"
  11.    FontSize        =   8.25
  12.    FontStrikethru  =   0   'False
  13.    FontUnderline   =   0   'False
  14.    Height          =   6060
  15.    Icon            =   APPMAIN.FRX:0000
  16.    Left            =   825
  17.    LinkMode        =   1  'Source
  18.    LinkTopic       =   "Form1"
  19.    ScaleHeight     =   5370
  20.    ScaleWidth      =   8205
  21.    Top             =   855
  22.    Width           =   8325
  23.    Begin TextBox AppText 
  24.       FontBold        =   0   'False
  25.       FontItalic      =   0   'False
  26.       FontName        =   "Courier"
  27.       FontSize        =   12
  28.       FontStrikethru  =   0   'False
  29.       FontUnderline   =   0   'False
  30.       Height          =   5415
  31.       Left            =   -45
  32.       MultiLine       =   -1  'True
  33.       ScrollBars      =   3  'Both
  34.       TabIndex        =   0
  35.       Top             =   -45
  36.       Width           =   8250
  37.    End
  38.    Begin Menu FileMenu 
  39.       Caption         =   "&File"
  40.       Begin Menu FileNewCmd 
  41.          Caption         =   "&New"
  42.       End
  43.       Begin Menu FileOpenCmd 
  44.          Caption         =   "&Open..."
  45.       End
  46.       Begin Menu FileSaveCmd 
  47.          Caption         =   "&Save"
  48.       End
  49.       Begin Menu FileSaveAsCmd 
  50.          Caption         =   "Save &As..."
  51.       End
  52.       Begin Menu FileSep1 
  53.          Caption         =   "-"
  54.       End
  55.       Begin Menu FilePrintCmd 
  56.          Caption         =   "&Print..."
  57.       End
  58.       Begin Menu FilePrinterSetupCmd 
  59.          Caption         =   "P&rinter Setup..."
  60.       End
  61.       Begin Menu FileSep2 
  62.          Caption         =   "-"
  63.       End
  64.       Begin Menu FileExitCmd 
  65.          Caption         =   "E&xit"
  66.       End
  67.    End
  68.    Begin Menu HelpMenu 
  69.       Caption         =   "&Help"
  70.       Begin Menu UsingHelpCmd 
  71.          Caption         =   "Using Help"
  72.       End
  73.       Begin Menu HelpSep2 
  74.          Caption         =   "-"
  75.       End
  76.       Begin Menu HelpAboutCmd 
  77.          Caption         =   "&About"
  78.       End
  79.    End
  80. End
  81. ' ================
  82. ' Copyrights & CYA
  83. ' ================
  84. '
  85. ' App Shell is freeware with the following intent:
  86. '
  87. ' -  You are free to incorporate App Shell into your code that will be
  88. '    distributed in executable form.
  89. ' -  You are free to distribute App Shell source or incorporate App Shell
  90. '    source into your source code assuming no charge is required and this
  91. '    copyright is maintained and acknowledged.
  92. ' -  You are free to distribute App Shell source as shareware assuming
  93. '    you are an approved vendor and associate member of the Association
  94. '    of Shareware Professionals (ASP).  No registration fee is required
  95. '    but this copyright must be maintained and acknowledged.
  96. ' -  All other distribution rights are maintained by the author.
  97. ' -  The author makes NO warranties, express or implied, oral or written,
  98. '    including any implied warranties of merchantability or fitness for
  99. '    a particular purpose.  In no event shall the author be liable for
  100. '    any damages whatsoever arising out of the use of the software.
  101. '
  102. ' If you find any bugs, anomalies, or have any questions or suggestions,
  103. ' please send them to Jim Presley (CIS ID - 73417,2674).  Enjoy!
  104. '
  105. '
  106.  
  107. Sub AppText_Change ()
  108.   
  109.   App_Changed = True
  110.   App_Data = AppText.Text
  111.  
  112. End Sub
  113.  
  114. Function CheckForChange () As Integer
  115.   
  116.   x% = 0
  117.   
  118.   If App_Changed Then
  119.     If App_FileName = "" Then
  120.       a$ = "[Untitled]"
  121.     Else
  122.       a$ = UCase$(App_FileName)
  123.     End If
  124.     x% = MsgBox(a$ + " has changed.  Save current changes?", MB_YESNOCANCEL + MB_ICONEXCLAMATION, APP_NAME)
  125.     If x% = IDYES Then
  126.       x% = SaveFile(False)
  127.     End If
  128.   End If
  129.  
  130.   CheckForChange = x%
  131.  
  132. End Function
  133.  
  134. Sub ExitProcessing ()
  135.   '
  136.   If CheckForChange() <> IDCANCEL Then End
  137. End Sub
  138.  
  139.  
  140. Sub FileExitCmd_Click ()
  141.   ExitProcessing
  142. End Sub
  143.  
  144. Sub FileNewCmd_Click ()
  145.   If CheckForChange() <> IDCANCEL Then
  146.     LoadFileNew
  147.     LoadMainControls
  148.     App_Changed = False
  149.   End If
  150. End Sub
  151.  
  152. Sub FileOpenCmd_Click ()
  153.   If CheckForChange() <> IDCANCEL Then
  154.     App_OpenTitle = "Open File"
  155.     App_OpenSaveStyle = APP_OPEN
  156.  
  157.     AppOpenSave.Show Modal
  158.     Unload AppOpenSave
  159.     
  160.     If App_DialogReturn = IDOK Then
  161.       '
  162.       ' load the file
  163.       '
  164.       If LoadFile() Then
  165.         LoadMainControls
  166.         App_Changed = False
  167.       End If
  168.     End If
  169.   End If
  170. End Sub
  171.  
  172. Sub FilePrintCmd_Click ()
  173.   
  174.   Dim Win_PrinterName As String
  175.   Dim Win_PrinterDriver As String
  176.   Dim Win_PrinterPort As String
  177.   Dim RestorePrinter As Integer
  178.   
  179.   '
  180.   ' get the print parameters
  181.   '
  182.   AppPrint.Show Modal
  183.  
  184.   GetDefaultPrinter Win_PrinterName, Win_PrinterDriver, Win_PrinterPort
  185.  
  186.   '
  187.   ' print the document
  188.   '
  189.   RestorePrinter = False
  190.   If App_PrinterName <> Win_PrinterName Then
  191.     '
  192.     ' make the printer the default
  193.     '
  194.     WriteDefaultPrinter App_PrinterName, App_PrinterDriver, App_PrinterPort
  195.     RestorePrinter = True
  196.   End If
  197.  
  198.   For App_PrintCopyNumber = 1 To App_PrintCopies
  199.     AppPrinting.Show Modal
  200.     If App_PrintCancel Then Exit For
  201.   Next
  202.  
  203.   If RestorePrinter Then
  204.     '
  205.     ' restore the default windows printer
  206.     '
  207.     WriteDefaultPrinter Win_PrinterName, Win_PrinterDriver, Win_PrinterPort
  208.   End If
  209.  
  210. End Sub
  211.  
  212. Sub FilePrinterSetupCmd_Click ()
  213.  
  214.   AppPrSetup.Show Modal
  215.  
  216. End Sub
  217.  
  218. Sub FileSaveAsCmd_Click ()
  219.   
  220.   '
  221.   ' save the file and load main form's caption
  222.   '
  223.   If SaveFile(True) Then LoadMainTitle
  224.  
  225. End Sub
  226.  
  227. Sub FileSaveCmd_Click ()
  228.     
  229.     x% = SaveFile(False)
  230.  
  231. End Sub
  232.  
  233. Sub Form_Load ()
  234.   '
  235.   ' load any file specified on the command line into memory
  236.   '
  237.   c$ = Command$
  238.   If c$ <> "" Then
  239.     If InStr(c$, ".") = 0 Then c$ = c$ + App_FileExtension
  240.     a$ = Dir$(c$)
  241.     If a$ = "" Then
  242.       MsgBox "File name " + UCase$(c$) + " entered on command line not valid.", MB_ICONEXCLAMATION, APP_NAME
  243.       LoadFileNew
  244.     Else
  245.       App_FullFileName = c$
  246.       SplitFileName App_FullFileName, App_Path, App_FileName
  247.       If Not LoadFile() Then
  248.         LoadFileNew
  249.       End If
  250.     End If
  251.   Else
  252.     LoadFileNew
  253.   End If
  254.   
  255.   LoadMainControls
  256.   App_Changed = False
  257.  
  258. End Sub
  259.  
  260. Sub Form_Resize ()
  261.  
  262.   AppText.Move 0, 0, ScaleWidth, ScaleHeight
  263.  
  264. End Sub
  265.  
  266. Sub Form_Unload (Cancel As Integer)
  267.   ExitProcessing
  268.   '
  269.   ' if processing returns that means the user cancelled
  270.   ' the termination
  271.   '
  272.   Cancel = True
  273.  
  274. End Sub
  275.  
  276. Sub HelpAboutCmd_Click ()
  277.   AppAbout.Show Modal
  278. End Sub
  279.  
  280. Function LoadFile () As Integer
  281.   
  282.   '
  283.   ' Load the file
  284.   '
  285.   LoadFile = True
  286.   Screen.MousePointer = HOURGLASS
  287.  
  288.   On Error GoTo LoadFileError
  289.  
  290.   FileNum% = FreeFile
  291.   Open App_FullFileName For Input As FileNum%
  292.   
  293.   If LOF(FileNum%) > 60000 Then
  294.     MsgBox "Sorry, file too large", MB_STOPICON, APP_NAME
  295.     LoadFile = False
  296.     Exit Function
  297.   End If
  298.   
  299.   Do Until EOF(FileNum%)
  300.     Line Input #FileNum%, nl$
  301.     a$ = a$ + nl$ + CRLF
  302.   Loop
  303.   
  304.   Close FileNum%
  305.  
  306.   App_Data = a$
  307.   Screen.MousePointer = DEFAULT
  308.  
  309.   On Error GoTo 0
  310.   Exit Function
  311.  
  312. LoadFileError:
  313.   
  314.   a$ = Error$(Err)
  315.   MsgBox "Error: " + a$, MB_ICONSTOP, APP_NAME
  316.   LoadFile = False
  317.   On Error GoTo 0
  318.   Screen.MousePointer = DEFAULT
  319.   Exit Function
  320.  
  321. End Function
  322.  
  323. Sub LoadFileNew ()
  324.   '
  325.   App_FileName = ""
  326.   App_Path = CurDir$
  327.   App_Data = ""
  328.  
  329. End Sub
  330.  
  331.  
  332. Sub LoadMainControls ()
  333.     
  334.   LoadMainTitle
  335.   
  336.   AppText.Text = App_Data
  337.   
  338. End Sub
  339.  
  340.  
  341. Sub LoadMainTitle ()
  342.   
  343.   If App_FileName <> "" Then
  344.     AppMain.Caption = APP_NAME + " - " + UCase$(App_FileName)
  345.   Else
  346.     AppMain.Caption = APP_NAME + " - [Untitled]"
  347.   End If
  348.   
  349. End Sub
  350.  
  351. Function SaveFile (NewName As Integer) As Integer
  352.   
  353.   '
  354.   ' get a file name if untitled
  355.   '
  356.   If App_FileName = "" Or NewName Then
  357.     App_SaveTitle = "Save File As"
  358.     App_OpenSaveStyle =